package negocio;

import java.rmi.RemoteException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;

import javax.swing.JOptionPane;

import beans.MozoVO;

import negocio.Mozo;




public class admPersMozo {
	private Connection con;

	//Patron Singleton
	private static admPersMozo admPersistencia;
	
	public static admPersMozo getAdmPersistencia()
	{
		if(admPersistencia.admPersistencia==null)
		{
			admPersistencia= new admPersMozo();
		}
		return admPersistencia;
	}
	//Finaliza singleton
	
	
	public void connect()
	{
		try
		{
						
			Class.forName("net.sourceforge.jtds.jdbc.Driver");
			String url = "jdbc:jtds:sqlserver://127.0.0.1:1433/restaurant;tds=8.0;lastupdatecount=true";
			String usuario = "sa";
			String password = "123456";
			con = DriverManager.getConnection (url, usuario, password);
		}
		
        catch (Exception e)
        {
			JOptionPane.showMessageDialog(null, "Error al conectar a la BD", "Informacion", JOptionPane.INFORMATION_MESSAGE);
			
            System.err.println ("No se pudo conectar con la Base de Datos.(Restaurant)");
        }
		        
	}
	
	public ArrayList<MozoVO> obtenerMozos(){
		
		try {
			this.connect();
			Statement s;
			s = con.createStatement();
			String legajo;
			String nombre;
			String estado;
			String sentencia1 = "SELECT idmozo, nombre, estado FROM Mozos";
			s.executeQuery(sentencia1);
			
			ResultSet rs= s.getResultSet();
			
			ArrayList<MozoVO>mozos= new ArrayList<MozoVO>();
			
			while (rs.next()){
				MozoVO m = new MozoVO();
				System.out.println("Mozo: " +rs.getString("idmozo") +" - " +rs.getString("nombre") +" - " +  rs.getString("estado"));
				m.setLegajo(rs.getInt("idmozo"));
				m.setNombre(rs.getString("nombre"));
				
				
				mozos.add(m);
			}
			this.con.close();
			return mozos;
			
			
		}
		catch(SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("Error Query: " + e.getMessage());
			return null;
		}

	}	
	
	public void envioMozo(Mozo mozo) throws RemoteException {
		// TODO Auto-generated method stub
		try{
			System.out.println("Entro al envioMozo INSERT");
			this.connect();
			Statement s;
			s = con.createStatement();
			
			String sentencia1 = "INSERT INTO mozos (idmozo, nombre, estado) VALUES ('" + 
			mozo.getLegajo() + "','" + mozo.getNombre() + ")";
			System.out.println("El insert es: " + sentencia1);
			s.executeUpdate(sentencia1);
			
			
			//ResultSet rs= s.getResultSet();
		}
		catch(SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("Error Query: " + e.getMessage());
			
		}

		
	}

}
